﻿Public Class FrmKart

	Public Kod As Integer

	Sub New()
		InitializeComponent()
		Statu.LoadItems(Service.Combo.Statuler)
		SStatu.LoadItems(Service.Combo.Statuler)
		Birim.LoadItems(Kullanici.Birimler)
		Cinsiyet.LoadItems(Service.Combo.Cinsiyetler)
		Kayit.SelectedIndex = 0
		PicPersonel.Image = My.Resources.personel.Resize(PicPersonel.Width, PicPersonel.Height)
		List.View = View.Details
		List.FullRowSelect = True
		List.Columns.Add("Tarih", 100, HorizontalAlignment.Center)
		List.Columns.Add("Statü", 150, HorizontalAlignment.Left)
		Yil.SelectedItem = CStr(Today.Year)
		Birim.SetValue(Kullanici.Birim)
		Birim.Enabled = Kullanici.TBirim = 0
	End Sub

	Sub Open(ByVal Kod As Integer)
		Me.Kod = Kod
		Dim Personel As PersonelInfo = Service.Personel.Oku(Kod)
		Text = ToTitle(Personel.Adi & " " & Personel.Soyadi)
		Ad.Text = Personel.Adi.ToTitle
		Soyad.Text = Personel.Soyadi.ToTitle
		Cinsiyet.SetValue(Personel.Cinsiyet)
		Kimlik.Text = Personel.Kimlik
		Birim.SetValue(Personel.Birim)
		Altbirim.SetValue(Personel.AltBirim)
		Izin.Text = "0"
		Gun.Text = "0"
		Yil.Text = "0"
		Saat.Text = "0"
		If Not Personel.IlkHareket Then Exit Sub
		Tarih.Value = Personel.IseBasTar
		Kayit.SelectedIndex = If(Personel.Devir, 0, 1)
		Yil.SelectedItem = Personel.IlkYil
		Statu.SetValue(Personel.IlkStatu)
		Izin.Text = Personel.IlkIzin
		Gun.Text = Personel.IlkGun
		Saat.Text = Personel.IlkSaat
		If Personel.Statuler <> "" Then
			For Each Item In Personel.Statuler.Split("|")
				Dim Data = Item.Split(",")
				Dim LItem As ListViewItem = List.Items.Add(CDate(Data(0)))
				LItem.SubItems.Add(Data(1))
				LItem.Tag = Data(1)
			Next
		End If
	End Sub

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		If Check(Statu, Statu.SelectedItem Is Nothing, "Statü bilgisini girmek zorundasınız.") Then Exit Sub
		Dim Statuler As String = ""
		For Each Item As ListViewItem In List.Items
			Statuler &= "|" & CDate(Item.SubItems(0).Text).ToString("yyyyMMdd") & "," & Item.Tag
		Next
		Statuler = Mid(Statuler, 2)
		Dim Result = Service.Personel.Kaydet(Kod, Ad.Text, Soyad.Text, Cinsiyet.Value, Kimlik.Text, Birim.Value, Altbirim.Value,
		Kayit.SelectedIndex = 0, Yil.Text, Tarih.Value.Date, Statu.Value, Val(Izin.Text), Val(Gun.Text), Val(Saat.Text), Statuler, Kullanici.Kod)
		If Result = "" Then Close() : Exit Sub
		Warning("Kaydetme aşamasında bir hata meydana geldi. Lütfen tekrar deneyin. Sorun devam ederse sistem yetkililerine haber verin.")
	End Sub

	Private Sub Remove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Remove.Click
		If List.SelectedItems.Count <> 1 Then Exit Sub
		If Not Confirm("Bu statü değişiklik kaydını silmek istediğinizden emin misiniz?") Then Exit Sub
		List.Items.Remove(List.SelectedItems(0))
	End Sub

	Private Sub Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Add.Click
		Dim Item As ListViewItem = List.Items.Add(STarih.Value.Date)
		Item.SubItems.Add(SStatu.Text)
		Item.Tag = SStatu.SelectedValue
		List.SelectedItems.Clear()
		List.Sort(0)
		Item.Selected = True
	End Sub

	Private Sub Birim_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Birim.SelectedValueChanged
		Altbirim.Enabled = Not Birim.Value Is Nothing
		If Not Altbirim.Enabled Then Altbirim.DataSource = Nothing : Exit Sub
		Altbirim.LoadItems(Service.Combo.AltBirimler(Birim.Value))
	End Sub

	Private Sub Kayit_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles Kayit.SelectedIndexChanged
		Dim Devir = Kayit.SelectedIndex = 0
		LblTarih.Text = If(Devir, "Devir yılı", "İşe baş. tar.") & " :"
		Yil.Visible = Devir
		Tarih.Visible = Not Devir
		Izin.Enabled = Devir
		Saat.Enabled = Devir
		Gun.Enabled = Devir
		LblIzin.Enabled = Devir
		LblSaat.Enabled = Devir
		LblGun.Enabled = Devir
	End Sub

End Class